from pathlib import Path
from trend.charts.linechart import KeywordTrendGenerator

def generate_example_trends():
    """生成示例趋势图"""
    
    # 扩展示例数据，更贴近实际场景
    example_data = {
        # 核心技术领域
        "人工智能": [320, 450, 580, 720, 950],
        "机器学习": [280, 380, 480, 620, 780],
        "深度学习": [220, 320, 420, 550, 680],
        "神经网络": [180, 260, 350, 460, 580],
        "大数据": [420, 520, 680, 850, 980],
        
        # 应用技术领域
        "计算机视觉": [180, 280, 380, 520, 680],
        "自然语言处理": [150, 240, 350, 480, 620],
        "智能机器人": [120, 200, 300, 420, 580],
        "自动驾驶": [100, 180, 280, 400, 550],
        "智能制造": [160, 250, 380, 520, 680],
        
        # 新兴技术方向
        "联邦学习": [50, 120, 220, 350, 480],
        "强化学习": [80, 150, 250, 380, 520],
        "知识图谱": [100, 180, 280, 420, 580],
        "量子计算": [30, 80, 150, 250, 380],
        "边缘计算": [120, 200, 320, 450, 620]
    }
    
    # 创建输出目录
    output_dir = Path(__file__).parent.parent / 'output' / 'trends'
    output_dir.mkdir(parents=True, exist_ok=True)
    
    # 创建趋势图生成器
    generator = KeywordTrendGenerator()
    
    # 生成不同类型的趋势图
    examples = [
        {
            'name': 'core_tech',
            'title': 'AI核心技术专利趋势分析',
            'keywords': ['人工智能', '机器学习', '深度学习', '神经网络', '大数据']
        },
        {
            'name': 'applied_tech',
            'title': 'AI应用技术专利趋势分析',
            'keywords': ['计算机视觉', '自然语言处理', '智能机器人', '自动驾驶', '智能制造']
        },
        {
            'name': 'emerging_tech',
            'title': 'AI新兴技术专利趋势分析',
            'keywords': ['联邦学习', '强化学习', '知识图谱', '量子计算', '边缘计算']
        },
        {
            'name': 'top_5_tech',
            'title': 'Top 5高增长技术专利趋势',
            'keywords': ['人工智能', '大数据', '计算机视觉', '机器学习', '智能制造']
        }
    ]
    
    results = []
    for example in examples:
        save_path = output_dir / f"example_{example['name']}_trends.html"
        try:
            # 提取指定关键词的数据
            data = {k: example_data[k] for k in example['keywords']}
            
            result_path = generator.generate(
                data=data,
                save_path=str(save_path),
                title=example['title']
            )
            results.append({
                'name': example['name'],
                'path': result_path,
                'status': 'success'
            })
            print(f"生成成功: {result_path}")
            
        except Exception as e:
            results.append({
                'name': example['name'],
                'error': str(e),
                'status': 'failed'
            })
            print(f"生成失败: {example['name']} - {str(e)}")
    
    # 打印生成结果
    print("\n=== 生成结果汇总 ===")
    for result in results:
        status = '✓' if result['status'] == 'success' else '✗'
        if result['status'] == 'success':
            print(f"{status} {result['name']}: {result['path']}")
        else:
            print(f"{status} {result['name']}: {result['error']}")

if __name__ == "__main__":
    generate_example_trends() 